МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
Кафедра ЗІ
Звіт до лабораторної роботи № 3
Побудова графіка функцій за допомогою засобів мови програмування С#
З дисципліни
“Програмування комп’ютерної графіки”
Виконав ст. гр. УІ-32
Перевірив:
Львів – 2011
Мета роботи - набути практичних навиків в складанні програм для побудови графіків функцій за допомогою засобів мов програмування С#.
ЗАВДАННЯ
Домашня пiдготовка до роботи
Ознайомитися з методами побудови графіків функцій на екрані монітора комп’ютера.
Вивчити основні процедури мови Турбо-Паскаль для виведення тексту в графічному режимі.
Написати програму, яка будує в середині екрану систему координат XY і на ній графік функції Y=F(X), використовуючи графічні оператори мови Турбо Паскаль, якщо аргумент або параметр змінюється на проміжку [a;b] з кроком h. Варіанти завдань беруть з таблиці 1 за вказівкою викладача.
Таблиця 1.
N% п/п
Функція
Інтервал
Крок
15
t=[-100;100]
h=0.5
Список ідентифікаторів констант, змінних, процедур і функцій, використаних в програмі, та їх пояснення.
Glut.Init - ініціалізація бібліотеки Glut
Glut.glutInitDisplayMode() - функція встановлення режиму відображення :
GLUT_RGB - режим бітової маски вікна
GLUT_DOUBLE - подвійна буферизація вікна, з метою усунення мерехтіння, яке виникає в результаті швидкого перемальовування кадрів декілька раз підряд
GLUT_DEPTH - вказується при ініціалізації вікна, якщо в додатку буде використовуватись буфер глибини
Gl.glClearColor() - встановлення кольору очистки вікна
Gl.glViewport(0,0,OnGl.Width,OnGl.Height) - встановлення порту виводу (в нашому випадку охоплює всю область елемента OnGl)
Gl.glMatrixMode(Gl.GL_PROJECTION) - задає матричний режим, в якому будемо виконувати операції, GL_PROJECTION - матриця проекцій
Gl.glLoadIdentity() - очищення матриці, функція заміняє поточну матрицю на одиничну
Glu.gluPerspective(кут візуального охоплення, відношення сторін порту перегляду, ближня, дальня площина перегляду) - будує піраміру охоплення видимості
GL_MODELVIEW - об'єктно-видова матриця
Gl.glEnable() - включення необхідних опцій для коректної візуалізації сцени
ScreenW, ScreenH – змінні, що задають розмір вікна.
elements_count – кількість елементів в масисі.
GrapValuesArray – масив, який буде зберігати значення точок х,у графіка.
devX, devY - змінні, що відповідають за вдношення сторін вікна візуалізації.
pointPosition - номер комірки масиву, з якої будуть взяті координати для червоної точки, для візуалізації поточного кадру.
lineX, lineY - допоміжні змінні для побудови ліній від курсору миші до координатних осей.
functionCalculation() - функція, яка виробляє обчислення координат графіка і яка заносить їх у масив GrapValuesArray.
PrintText2D() – функція візуалізації тексту.
AnT_MouseMove() – обробка руху миші над елементом AnT.
PointInGrap_Tick() - функція, обробник події таймера.
DrawDiagram() – візуалізація графіка.
Draw() - функція, керування візуалізацією сцени.
Повний текст програми
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
// для работи з бібліотекою OpenGL
using Tao.OpenGl;
// для работи з бібліотекою FreeGLUT
using Tao.FreeGlut;
// для работи з елементом управління SimpleOpenGLControl
using Tao.Platform.Windows;
namespace WindowsFormsApplication8
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
AnT.InitializeContexts();
}
// размеры окна
double ScreenW, ScreenH;
// отношения сторон окна визуализации
// для корректного перевода координат мыши в координаты,
// принятые в программе
private float devX;
private float devY;
// массив, который будет хранить значения x,y точек графика
private float[,] GrapValuesArray;
// количество элементов в мас...